<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Valgrind</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Valgrind"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Valgrind rootpage-Valgrind skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Valgrind</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><table class="float-right infobox toccolours toptextcells" style="border-spacing:5px; font-size:90%; text-align:left; width:21em;">
<tbody><tr>
<th colspan="2" class="hintergrundfarbe6" style="font-size:105%; text-align:center;">Valgrind
</th></tr>
<tr>
<th colspan="2" class="hintergrundfarbe5" style="font-size:105%; text-align:center;">Basisdaten
<p class="mw-empty-elt">
</p>
</th></tr>
<tr>
<td><b><a href="Softwareentwickler" title="Softwareentwickler">Entwickler</a></b>
</td>
<td>Valgrind-Entwickler<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</td></tr>
<tr>
<td><b>Aktuelle <a href="Version_(Software)" title="Version (Software)">Version</a></b>
</td>
<td><span class="wikidata-content">3.26.0<sup id="cite_ref-_ca23ad3be3f6629a_2-0" class="reference"><a href="#cite_note-_ca23ad3be3f6629a-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup></span> <br> (<span class="wikidata-content">25. Oktober 2025</span>)
</td></tr>
<tr>
<td><b><a href="Betriebssystem" title="Betriebssystem">Betriebssystem</a></b>
</td>
<td><a href="Linux" title="Linux">Linux</a>, <a href="Android_(Betriebssystem)" title="Android (Betriebssystem)">Android</a>, <a href="FreeBSD" title="FreeBSD">FreeBSD</a>, <a href="MacOS" title="MacOS">macOS</a>, <a href="Solaris_(Betriebssystem)" title="Solaris (Betriebssystem)">Solaris</a>
</td></tr>
<tr>
<td><b><a href="Programmiersprache" title="Programmiersprache">Programmiersprache</a></b>
</td>
<td><span class="wikidata-content"><a href="C_(Programmiersprache)" title="C (Programmiersprache)">C</a><sup id="cite_ref-_3a4a19ee6b686d86_3-0" class="reference"><a href="#cite_note-_3a4a19ee6b686d86-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup></span>
</td></tr>
<tr>
<td><b>Kategorie</b>
</td>
<td><a href="Debugger" title="Debugger">Debugger</a>, <a href="Profiler_(Programmierung)" title="Profiler (Programmierung)">Profiler</a>
</td></tr>
<tr>
<td><b>Lizenz</b>
</td>
<td><a href="GNU_General_Public_License" title="GNU General Public License">GPL</a> (<a href="Freie_Software" title="Freie Software">Freie Software</a>)
</td></tr>
<tr>
<td><b><a href="Lokalisierung_(Softwareentwicklung)" title="Lokalisierung (Softwareentwicklung)">deutschsprachig</a></b>
</td>
<td>nein
</td></tr>
<tr>
<td class="hintergrundfarbe5" colspan="2" style="text-align:center;"><a rel="nofollow" class="external text" href="https://www.valgrind.org/">www.valgrind.org</a>
</td></tr></tbody></table>
<p><b>Valgrind</b> (<style data-mw-deduplicate="TemplateStyles:r227981795">
/* start https://de.wikipedia.org/ */
.mw-parser-output .IPA a{text-decoration:none}
/* end https://de.wikipedia.org/ */
</style><span class="navigation-not-searchable"><span class="IPA"><a href="Liste_der_IPA-Zeichen" title="Liste der IPA-Zeichen"><span title="Aussprache im Internationalen Phonetischen Alphabet (IPA)" lang="zxx">ˈvælɡrɪnd</span></a></span></span>) ist eine <a href="Programmierwerkzeug" title="Programmierwerkzeug">Programmierwerkzeugsammlung</a> zum <a href="Debuggen" title="Debuggen">Debuggen</a>, <a href="Profiler_(Programmierung)" title="Profiler (Programmierung)">Profilen</a> und zur dynamischen Fehleranalyse von <a href="Computerprogramm" title="Computerprogramm">Computerprogrammen</a>.
Es werden grundsätzlich die Architekturen <a href="X86-Prozessor" title="X86-Prozessor">x86</a>, <a href="AMD64" title="AMD64">AMD64</a>, <a href="System_z" class="mw-redirect" title="System z">s390x</a>, <a href="ARM-Architektur" title="ARM-Architektur">ARM</a>, <a href="PPC32" class="mw-redirect" title="PPC32">PPC32</a> und <a href="PPC64" class="mw-redirect" title="PPC64">PPC64</a> unter den Betriebssystemen <a href="Linux" title="Linux">Linux</a>, <a href="Android_(Betriebssystem)" title="Android (Betriebssystem)">Android</a> und <a href="MacOS" title="MacOS">macOS</a> unterstützt. Experimentelle Ports für <a href="FreeBSD" title="FreeBSD">FreeBSD</a>, <a href="NetBSD" title="NetBSD">NetBSD</a> und <a href="OpenBSD" title="OpenBSD">OpenBSD</a> existieren ebenfalls.
</p><p>Ursprünglich entwickelt wurde Valgrind von dem Compilerbau-Spezialisten <a href="Julian_Seward" title="Julian Seward">Julian Seward</a>, der für diese Arbeit 2006 den Google-O'Reilly Open Source Award erhielt.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Namensherkunft">Namensherkunft</h2></div>
<p>Der Name <i>Valgrind</i> stammt aus der <a href="Nordische_Mythologie" title="Nordische Mythologie">nordischen Mythologie</a> und ist dort der Haupteingang nach <a href="Walhall" title="Walhall">Valhall</a> sowie ein Zaun um <a href="Helheim" title="Helheim">Helheim</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Systemaufbau">Systemaufbau</h2></div>
<p>Valgrind besteht aus diversen Werkzeugen, die beim Aufruf des Programms ausgewählt werden können. Sie unterscheiden sich in erster Linie in ihrer Zielrichtung und ihrem Umfang. Es können mit diesen Werkzeugen diverse sonst recht schwer zu lokalisierende Fehler gefunden werden, z. B. Feldgrenzenüberläufe oder die Verwendung nicht initialisierter Variablen. Darüber hinaus lassen sich Performanceprobleme sehr gut analysieren und eingrenzen.
</p><p>Valgrind ist ein kommandozeilen-orientiertes Programm, für das es diverse grafische Frontends gibt (Alleyoop, Gnogrind, <a href="KDevelop" title="KDevelop">KDevelop</a>, Valgui, Valkyrie).
</p>
<div class="mw-heading mw-heading2"><h2 id="Systemrealisierung">Systemrealisierung</h2></div>
<p>Valgrind ist im Kern eine <a href="Virtuelle_Maschine" title="Virtuelle Maschine">virtuelle Maschine</a> mit <a href="Just-in-time-Kompilierung" title="Just-in-time-Kompilierung">Just-in-time-Kompilierung</a> (JIT). Nichts von dem zu debuggenden Programm läuft direkt auf der Host-<a href="CPU" class="mw-redirect" title="CPU">CPU</a>, stattdessen übersetzt Valgrind das Programm in einen temporären, einfacheren und <a href="Plattformunabh%C3%A4ngigkeit" title="Plattformunabhängigkeit">plattformunabhängigen</a> <a href="Bytecode" title="Bytecode">Bytecode</a>, den sogenannten Vex IR (ab Version 3.x, vormals UCode). Nach der Konvertierung können verschiedene Valgrind-Tools diverse Transformationen vornehmen (z. B. Überwachen des Speichers oder Erstellen eines Ablauf-Profils), bevor Valgrind den neuen Code nimmt, in Maschinencode übersetzt und schließlich laufen lässt.
</p><p>Zwar lässt die Konvertierung in den Vex IR und zurück ein Programm um ein Vielfaches langsamer laufen, dazu addieren sich dann noch die Zeiten der verschiedenen Werkzeuge, jedoch ist der Vex IR wesentlich geeigneter für das Debuggen und das Erstellen der Werkzeuge, und die langsame Ausführungszeit ist für die meisten Programme kein Problem. Hinzu kommt der Vorteil, dass das zu prüfende Programm nicht aufbereitet werden, ja nicht einmal im <a href="Quellcode" class="mw-redirect" title="Quellcode">Quellcode</a> vorliegen muss.
</p>
<div class="mw-heading mw-heading2"><h2 id="Werkzeuge">Werkzeuge</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Liste">Liste</h3></div>
<ul><li>Memcheck</li>
<li>Addrcheck (entfernt in 3.2.0)</li>
<li>Cachegrind</li>
<li>DRD</li>
<li>Massif</li>
<li>Helgrind</li>
<li>Lackey, Nulgrind</li>
<li>DHAT</li>
<li>Callgrind</li>
<li>SGcheck</li>
<li>BBV</li></ul>
<div class="mw-heading mw-heading3"><h3 id="memcheck">memcheck</h3></div>
<p>Das wichtigste Tool für das Debuggen von Programmen ist <i>memcheck</i>, welches folgende Fehler finden kann:
</p>
<ul><li>Benutzung von nicht initialisiertem Speicher</li>
<li>Lese- und Schreibzugriffe auf freigegebenen Speicher</li>
<li>Schreiben über die Speichergrenzen hinaus</li>
<li><a href="Speicherleck" title="Speicherleck">Speicherlecks</a></li></ul>
<div class="mw-heading mw-heading3"><h3 id="callgrind">callgrind</h3></div>
<p>Für Messungen eines Programms ist <i>callgrind</i> interessant, welches umfangreiche Statistiken über das eingesetzte Programm ermittelt. Die Zahlen sind auf verschiedenen Systemen direkt miteinander vergleichbar, weil diese nicht die benötigte Ausführungszeit messen, sondern die Anzahl der CPU-Takte. Es gibt auch an, ob <a href="Algorithmus" title="Algorithmus">Algorithmen</a> besonders schnell im <a href="Cache" title="Cache">Cache</a> der CPU laufen können und wie oft es zu einem Hit oder Miss kommt. Die Größe der Caches kann man variieren, somit lassen sich verschiedene CPUs simulieren.
</p>
<div class="mw-heading mw-heading3"><h3 id="helgrind">helgrind</h3></div>
<p>Das Werkzeug <i>helgrind</i> (bis zur Version 2.2 und ab der Version 3.3.0) hilft bei der Suche nach kritischen Abschnitten und erleichtert das Debuggen mit Threads.
</p>
<div class="mw-heading mw-heading2"><h2 id="Siehe_auch">Siehe auch</h2></div>
<ul><li><a href="Softwarefehler" class="mw-redirect" title="Softwarefehler">Softwarefehler</a></li>
<li><a href="Laufzeitfehler" title="Laufzeitfehler">Laufzeitfehler</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><a rel="nofollow" class="external text" href="https://www.valgrind.org/">Offizielle Website</a></li>
<li><a rel="nofollow" class="external text" href="https://kcachegrind.github.io/html/Home.html">KCachegrind</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://www.valgrind.org/info/developers.html"><i>The Valgrind Developers</i></a></span>
</li>
<li id="cite_note-_ca23ad3be3f6629a-2"><span class="mw-cite-backlink"><a href="#cite_ref-_ca23ad3be3f6629a_2-0">↑</a></span> <span class="reference-text">Mark J. Wielaard: <a rel="nofollow" class="external text" href="https://sourceforge.net/p/valgrind/mailman/message/59251046/"><cite style="font-style:italic"><span lang="en">Valgrind-3.26.0 is available</span></cite>.</a> 25. Oktober 2025 (abgerufen am 27. Oktober 2025).</span>
</li>
<li id="cite_note-_3a4a19ee6b686d86-3"><span class="mw-cite-backlink"><a href="#cite_ref-_3a4a19ee6b686d86_3-0">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://www.openhub.net/p/valgrind/analyses/latest/languages_summary"><cite style="font-style:italic"><span lang="en">The valgrind Open Source Project on Open Hub: Languages Page</span></cite>.</a> In: <cite style="font-style:italic">Open Hub</cite>. (abgerufen am 18. Oktober 2018).</span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><a href="#cite_ref-4">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://developers.google.com/open-source/osa/?csw=1"><i>Google-O'Reilly Open Source Awards - Hall of Fame</i></a>, abgerufen am 18. November 2018.</span>
</li>
</ol></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2025-05-20" href="https://de.wikipedia.org/wiki/?title=Valgrind&oldid=256178614">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>